import * as fs from "fs"
import { TaskQuene } from "./TaskQuene";
/**
 * 文件读写工具，对fs读写文件的封装，因为同时读的文件太多，会报错，这里加个同时读写的线程总量控制
 */
export class FileIoUtil {
    private static taskQuene = new TaskQuene(4);
    /** 读文件 */
    static readFile(path: string, cb: (data: Buffer) => void) {
        this.taskQuene.do((completeCb:()=>void)=>{
            fs.readFile(path, (err, data) => {
                if (err) {
                    throw err;
                }
                cb(data);
                completeCb();
            });
        });
    }
    /** 写文件 */
    static writeFile(path: string, data: string, cb: () => void) {
        this.taskQuene.do((completeCb:()=>void)=>{
            fs.writeFile(path, data, (err) => {
                if (err) {
                    throw err;
                }
                cb();
                completeCb();
            });
        });
    }
}